package pack0924;

import java.util.Arrays;
import java.util.Scanner;

// 数组扩容问题
public class DemoE {

    // 一个定长数组，向数组中添加一个新元素
    public static void a() {
        int[] arr = {2, 3, 4, 5, 6};
        int number = 7;
        // 产生一个新数组
        int[] arr2 = new int[arr.length + 1];
        System.arraycopy(arr, 0, arr2, 0, arr.length);
        // 在做什么？
        arr = arr2;
        arr[5] = number;
        System.out.println(Arrays.toString(arr));
    }

    public static void b() {
        int[] arr = {2, 3, 4, 5};
        int[] arr2 = arr;  // 给arr又起了一个别名arr2
        System.out.println(arr == arr2);
        arr2[1] = 9;
        System.out.println(arr == arr2);
        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.toString(arr2));
    }

    // 一个定长数组，向数组中插入一个新元素
    public static void c() {
        int[] arr = {2, 3, 4, 5, 6};
        int number = 7;
        // 产生一个新数组
        int[] arr2 = new int[arr.length + 1];
        Scanner scan = new Scanner(System.in);
        System.out.print("请输入插入的位置：");
        int index = scan.nextInt();
        if (index > arr2.length) {
            System.out.println("错误，没有这个位置");
            return;
        }
        // 新数组中前半部分
        System.arraycopy(arr, 0, arr2, 0, index);
        arr2[index] = number;
        System.arraycopy(arr, index, arr2, index + 1, arr.length - index);
        arr = arr2;
        System.out.println(Arrays.toString(arr));
    }

    public static void main(String[] args) {
        b();
    }
}